/*******************************************************************************
 * Copyright (c) 2011 Olexandr V. Shaposhnikov.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Olexandr V. Shaposhnikov - initial API and implementation and/or initial documentation
 *******************************************************************************/
package com.funkyroach.use.core.ast;

public interface IUSASTConstants {

    // start 10000

    // COMMON 10100
    int US_AST_CLASS_DECL = 10100;
    int US_AST_CLASS_BODY = 10101;

    int US_AST_FUNC_DECL = 10102;
    int US_AST_FUNC_BODY = 10103;

    int US_AST_STATE_DECL = 10104;
    int US_AST_STATE_BODY = 10105;

    // LITERAL 10200
    int US_AST_FLOAT_LITERAL = 10201;
    int US_AST_STRING_LITERAL = 10202;
    int US_AST_BOOL_LITERAL = 10203;
    int US_AST_NONE_LITERAL = 10204;
    int US_AST_INT_LITERAL = 10205;
    int US_AST_CONST_LITERAL = 10206;

    // OPERATOR;
    int US_AST_ASSING_OPERATOR = 10300; // =
    int US_AST_MULASSING_OPERATOR = 10301; // *=
    int US_AST_DIVASSING_OPERATOR = 10302; // /=
    int US_AST_PLUSASSING_OPERATOR = 10303; // +=
    int US_AST_MINUSASSING_OPERATOR = 10304; // -=
    int US_AST_CONCATASSING_OPERATOR = 10305; // @=
    int US_AST_BUKSASSING_OPERATOR = 10306; // $=
    int US_AST_LEFT_SHIFT_OPERATOR = 10307; // <<
    int US_AST_RIGHT_SHIFT_OPERATOR = 10308; // >>
    int US_AST_RIGHT2_SHIFT_OPERATOR = 10308; // >>> 
    //TODO reorder US_AST_RIGHT2_SHIFT_OPERATOR == US_AST_RIGHT_SHIFT_OPERATOR
    
    int US_AST_EQUALITY_OPERATOR = 10309; // ==
    int US_AST_APROXIMATE_EQUALITY_OPERATOR = 10310; // ~=
    int US_AST_INEQUALITY_OPERATOR = 10311; // !=
    int US_AST_LESSTHAN_OPERATOR = 10312; // <
    int US_AST_LESSTHANOREQUAL_OPERATOR = 10313; // <=
    int US_AST_GREATERTHAN_OPERATOR = 10314; // >
    int US_AST_GREATERTHANOREQUAL_OPERATOR = 10315; // <=
    int US_AST_AND_OPERATOR = 10316; // &&
    int US_AST_OR_OPERATOR = 10317; // ||
    int US_AST_XOR_OPERATOR = 10318; // ^^
    int US_AST_BIT_NEGATION_OPERATOR = 10319; // ~
    int US_AST_BIT_AND_OPERATOR = 10320; // &
    int US_AST_BIT_OR_OPERATOR = 10321; // |
    int US_AST_BIT_XOR_OPERATOR = 10322; // |
    int US_AST_MUL_OPERATOR = 10323; // *
    int US_AST_POWER_OPERATOR = 10324; // **
    int US_AST_DIV_OPERATOR = 10325; // /
    int US_AST_MOD_OPERATOR = 10326; // %
    int US_AST_DOT_OPERATOR = 10327; // DOT
    int US_AST_CROSS_OPERATOR = 10328; // CROSS
    int US_AST_CLOCKWISEFROM_OPERATOR = 10329; // CLOCKWISEFROM
    int US_AST_NEGATION_OPERATOR = 10330; // -
    int US_AST_ADD_OPERATOR = 10331; // +
    int US_AST_SUBS_OPERATOR = 10332; // -
    int US_AST_INC_OPERATOR = 10332; // ++
    int US_AST_DEC_OPERATOR = 10332; // --
    
}
